import { MessageTypeEnum } from '@/enums/messageTypeEnum';
import { MessageLevelEnum } from '@/enums/messageLevelEnum';
import { MessageSendWayEnum } from '@/enums/messageSendWayEnum';

/** 消息简单DTO */
export interface MessageDtoSimple {
  /** 编号 */
  Id: string | bigint;

  /** 方法名 */
  Method: string | null;

  /** 消息图标 */
  Icon?: string | null;
  /** 消息类型 */
  MessageType: MessageTypeEnum;
  /** 消息级别 */
  MessageLevel: MessageLevelEnum;
  /** 标题 */
  Title?: string | null;
  /** 内容 */
  Content?: string | null;
  /** 发送时间 */
  SendTime: Date;
  /** 系统消息 */
  IsSystem: boolean;
  /** 发送者编号 */
  SenderId?: string | bigint | null;
  /** 发送者名称 */
  SenderName?: string | null;
  /** 发送者昵称 */
  SenderNickname?: string | null;
  /** 阅读时间 */
  LastReadTime?: Date | null;
  /** 阅读方式 */
  LastReadWay?: MessageSendWayEnum | null;

  /** 是否已读 */
  IsRead: boolean;
}

/** 消息DTO */
export interface MessageDto extends MessageDtoSimple {
  /** 数据体 */
  Payload: any;
}

/** 消息请求DTO */
export interface MessageRequestDto {
  /** 请求方式 */
  RequestWay: MessageSendWayEnum;
  /** 消息编号 */
  MessageIds: (string | bigint)[];
}

/** 消息读取DTO */
export interface MessageReadDto extends MessageRequestDto {
  /** 设置已读/未读 */
  Read: boolean;
}
